package org.zqy.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5加密工具类
 * 
 */
public class MD5Util {
	static MyLog log = MyLog.getLogger();

	/**
	 * 根据输入的字符串生成固定的32位MD5码
	 * 
	 * @param str
	 *            输入的字符串
	 * @return MD5码
	 */
	public final static String getMD5Code(String str) {
		MessageDigest mdInst = null;
		try {
			mdInst = MessageDigest.getInstance("MD5");
		} catch (NoSuchAlgorithmException e) {
			log.logger.error("getMD5Code:", e);
		}
		mdInst.update(str.getBytes());// 使用指定的字节更新摘要
		byte[] md = mdInst.digest();// 获得密文
		return StrConvertUtil.byteArrToHexStr(md);
	}

	/**
	 * 根据用户提供的key和要加密的字符串返回加密后的数据
	 * 
	 * @param key
	 *            自定义的key
	 * @param srcStr
	 *            要加密的字符串
	 * @return
	 * @throws Exception
	 */
	public final static String getMD5AddDESCode(String key, String srcStr) {
		return MD5Util.getMD5Code(new DESUtil(key).encrypt(srcStr));
	}
}
